This invention relates to the simulation of loading a web application and, more particularly, to the simulation of a loading of a web application by clients accessing the web application.
Communication of data from a central repository of data such as an Internet or Intranet to numerous persons referred to as clients is accomplished by use of a web application interconnected via a communication system to the clients. The specific resource requirements upon the web application for processing a client""s request for data depend on the nature of the data requested by the client, and, therefore, the loading of the web application by the client varies upon the clients. The total load on the web application increases with the number of clients accessing the web application and, with a large number of clients, may exceed the operating capacity of the web application in terms of meeting a/many performance goal/s. Such performance goals may be measured in terms of transactions per second (TPS), average response time, number of clients being served, CPU utilization or other.
To provide good service to the clients by the web application, there is a need to know the capacity of the web application in terms of the number of clients which can be served and/or how close the web application is to its capacity limit. To conduct such an analysis of a web application, equipment known as load generators have been developed to simulate the load generated by clients upon the web application. To simulate a large number of clients, there is employed a load generation system wherein one or more computers function as load generators to simulate the multiplicity of clients, such as personal computers, which may access the web application.
Presently available web application testing does not adequately address the foregoing need for knowledge of the web application capacity.
The foregoing need is met and other advantages are provided, in accordance with the invention, by a procedure of monitoring the performance of the web application while adapting the load generation for testing the web application performance. The invention provides for an increasing of the load upon the web application, while monitoring the transactions per second (TPS), this being followed by a further increase in the loading with a monitoring of the response time. During this procedure, there is a checking of whether the web application has reached a determined performance goal. If the performance goal is attained, the procedure terminates because no further performance is anticipated. The procedure also involves steps performed to determine whether a load generator, used in the loading of the web application, has reached its limit.
It is advantageous to designate a single client machine, to be referred to as a probing client, to simulate a single client obtaining of data from the web application. The monitoring of the performance characteristics of the web application by the probing client serves as an accurate measure of the web application performance.
In the simulation of the load imposed by simulated client, there is a creation of a test script that defines the behavior of the simulated clients. A user of the load generation system can set in advance the number of simulated clients for each load generator in order to determine the load size. The load size and its distribution on the load generators can be set to different values for different periods of the test.
The logic for interpreting the measurements is as follows. If the load size on a given load generator has increased, and its TPS remains steady, then there are two possibilities. The first possibility is that the load generator has reached its full capacity, and therefore the load increase actually interferes with the operation of the load generator. As a second possibility, the application being tested (ABT) has reached its full capacity and cannot produce more TPS. In order to determine which of these possibilities has occurred, two indicators are used.
The first indicator is the measurement of the response time, as taken from the probing client. If the response time does not change in value upon an increase in the load, this is understood to indicate that the ABT has not experienced a change in load size. Because, otherwise, the TPS would also have increased. Thus, the load generator is operating at full capacity. If the response time increases as the load increases, this is understood to mean that the ABT is unable to process more requests and, therefore, any further increase in the load size will affect the time, namely the response time, which is required to complete each request. A further indicator is found in the act of increasing the load on a different one of the load generators. If the TPS experiences an increase, this means that the ABT has successfully processed the additional request and, therefore, the first of the load generators has reached its full capacity and, accordingly, is not able to produce additional effective requests.
Definitions
Central Console
The central console delivers centralized management of all testing functions including selecting and defining test sessions, developing test scripts, scheduling test sessions and graphically and statistically monitoring results.
The Central Console
Configures test sessions.
Schedules test session scripts for simulated clients and probing clients.
Monitors the application""s performance under the generated load.
Manages the test session as it is running
Displays the performance of the ABT
ABT (Application Being Tested)
The web application being tested
Load Generator
An entity that generates simulated clients. Load generators have the task of bombarding the application being tested with HTTP protocol call requests as defined in the scripts. The number of simulated clients at any given moment is determined by the user-defined session.
Load Generator Machine
The machine that hosts and runs one or multiple load generators. Load generator machines are not limited to running a single load generator.
Probing Client
An entity that simulates only one client at any time. A probing client can run at the same time as loading testing. Probing clients are used to obtain performance measurements that can be more exact than a load generator machine running many simulated clients.
Probing Client Machine
A machine that hosts and runs a probing client. Probing client machines typically only run and host a single probing client.
Simulated Clients
Entities generated by load generators and probing clients. Each such entity is a simulation of a client accessing the application being tested (ABT).
Clients
Persons or entities which access a website via a browser or equivalent.
TPS (Transactions Per Second)
The number of HTTP transactions (such as a Get or Post) submitted by a clients to the ABT in a defined time period, divided by the number of seconds in the time period.
ART (Application Response Time)
The time (in seconds) required for the ABT to respond to a request sent by a client, simulated client or probing client).